<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>关于引用变量赋值的问题</title>
</head>
<body>
<!-- 
关于引用变量赋值的问题
    * n个引用变量指向同一个对象（两个变量保存相同的地址值）
        通过一个变量修改内部的数据，所有变量看到的是修改后的数据
    
    * 两个引用变量指向同一个对象，让其中一个引用变量指向另一个对象，
        另一引用变量还是指向前一个对象
-->
<script>
    var obj1 = {name: 'Tom'}
    var obj2 = obj1;
    obj1.name = "Jack"
    console.log(obj2.name); // Jack
    obj2.age = 18;
    console.log(obj1.age); // 18

    function fn(obj) {
        obj.name = "Bob"
    }

    fn(obj1);
    console.log(obj2.name); // Bob

    var a = {age: 12}
    var b = a;
    a = {name: 'Jack', age: 14};
    console.log(b.age, a.name, a.age); // 12 Jack 14

    function fn2(obj) {
        obj = {age: 15}
    }

    fn2(a);
    console.log(a.age); // 14
</script>
</body>
</html>